This page last changed on Jan 07, 2008 by stepheneb.

Zero Configuration Networking

Zeroconf networking allows ad-hoc interconnection of services between computers and devices on TCP/IP networks without the need of centralized services like DNS and DHCP.

Apple has developed multi-platform implementations of zeroconf networking they call Bonjour (the original name was Rendevous). Bonjour comes installed on all Macs since v10.3.9 of MacOS X. Apple supplies Bonjour downloads for Windows and source code for Linux/Unix systems.

This page Bonjour for Windows describes how installing the full Bonjour for Windows install from Apple integrates with IE. It turns out that a number of printer installations for Windows install a truncated version of Bonjour that don't include IE integration.

JmDNS is a all-Java implementation of Bonjour.

Apple also supplies a jar for working with Bonjour. This article: Zero Configuration Networking: Using the Java APIs describing how to work with the Bonjour jar is an excerpt from the O'Reilly book: Zero Configuration Networking: The Definitive Guide (I've purchased a copy – Stephen).

Here's several examples showing how to name and register a web application running locally on port 3001 to make it visible to Bonjour inquiries on a local-area network. In this case the application is a copy of the Sail Data Service and the name that is being advertised is "Sail Data Service".

Using the Bonjour shell program dns-sd:

$ dns-sd -R "Sail Data Service" _http._tcp "" 3001
Registering Service Sail Data Service._http._tcp port 3001 

Opening the Bonjour bookmarks menu in Safari will list all the local http services. In this case the only local service found is the one named "Sail Data Service".

Here's the same test using the Java JmDNS framework. While the JmDNS framework does advertise the descriptive name for the service Sail Data Service it creates an invalid DNS name

http://dhcp125.local.:3001/
for the local service.

$ java -jar lib/jmdns.jar -rs "Sail Data Service" _http._tcp local. 3001


Document generated by Confluence on Jan 27, 2014 16:56